package top.toptimus.dto.order.orderSync.orderCommit;

import com.alibaba.fastjson.JSON;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import top.toptimus.constValue.MeasureConsts;
import top.toptimus.constValue.SalesTypeConsts;
import top.toptimus.dto.accessory.StyleAccessoryDTO;
import top.toptimus.dto.accessory.StyleAccessoryItemsDTO;
import top.toptimus.dto.customerInfo.CustomerFitRDTO;
import top.toptimus.dto.customerInfo.CustomerOrderCommitDTO;
import top.toptimus.dto.material.MaterialAllInfoDTO;
import top.toptimus.dto.material.MaterialInfoDTO;
import top.toptimus.dto.material.materialMaintain.SaleCreateFabricIndexDTO;
import top.toptimus.dto.measure.MeasureItemDTO;
import top.toptimus.dto.order.orderCache.OrderFabricUnitConsumptionDTO;
import top.toptimus.dto.order.orderCache.OrderInfoDTO;
import top.toptimus.dto.saleStyle.SaleInventoryInfoDTO;
import top.toptimus.dto.style.StyleInfoDto;
import top.toptimus.dto.style.StyleWithUnitConsumptionIndexDTO;
import top.toptimus.util.DateTimeUtil;

import java.util.*;

/**
 * 订单提交DTO
 */
@NoArgsConstructor
@Data
public class OrderCommitDto {
    private static final Logger logger = LoggerFactory.getLogger(OrderCommitDto.class);
    private String id;
    /**
     * 客户返单信息
     */
    private String refOrderId;  //  客户返单id
    private String refOrderNo;  //  客户返单号
    /**
     * 参考款式信息
     */
    private String refBarcode;  //  参考成衣条码
    private String saleInventoryId; //  货号
    /**
     * 销售渠道信息
     */
    private String salesType = SalesTypeConsts.TERMINALSALE;   //  销售方式    top.toptimus.constValue.SalesTypeConsts
    private String salesChannel;    //  销售渠道
    /**
     * 客户信息
     */
    private String customerId;
    private String customerName;    //  客户姓名
    private String consignee;   //  收件人
    private String mobile;
    private String addressId;
    private String addressProvince;//省
    private String addressCity;//市
    private String addressDistrict;//区
    private String addressDetail;//详细地址
    private String zipCode;//邮编
    private String customerCountId;//客户量体id
    private List<CustomerFitRDTO> customerFitRDTOS;//客户量体信息
    /**
     * 门店信息
     */
    private String shopId;
    private String shopName;

    /**
     * 订单信息
     */
    private String orderId;
    private String orderNo;//订单号
    private Double orderNumber = 1.0;//订单数量
    private Date orderDate = DateTimeUtil.getCurrentDate();//订单时间
    private String orderType;
    private String remarks;//备注
    private String kashiyamaOrderNo;    //  坚山订单号
    /**
     * 款式信息
     */
    private String inventoryNo; //  货号
    private String styleId;
    private String refStyleId;//参考款id
    private String styleSizeCd;//尺码
    private String styleNameCn;//款式名称
    private String styleYear;//款式年份
    private String styleSeason;//款式季节
    /**
     * 面料信息
     */
    private String styleFabricId;//面料id
    private String materialNameCn;//面料描述名称
    private String materialCode;  //面料号
    private String materialColor;//面料颜色
    private String composition;//面料成分
    private String density;  //  纱织密度
    private String weight;  //  克重
    private String width;    //  幅宽
    private String thick;    //  厚度
    private String elastic;    //  弹力
    private String feature;    //  面料特性注意
    private String continuity;    //  延续性
    private String uasge;    //  用途
    private String inspectionResults;    //  验料结果
    private String color;    //  颜色
    private String season;    //  季节
    private String style;    //  风格
    private String arrangementMethod;    //  整理方式

    /**
     * 款式信息
     */
    private String stylePublishCategoryCd;
    private String styleCategoryCd;
    private String styleFitCd;
    private String styleSizeGroupCd;
    private String styleDressCategory;
    private String styleDesignType;
    private String styleMakeType;//制作工艺

    @Deprecated
    private StyleAccessoryItemsDTO styleAccessoryItemsDTO;//辅料
    @Deprecated
    private String saveStyleAccessoryItemsDTO;//Json辅料保存
    /**
     * 面辅料耗用信息
     */
    private List<StyleAccessoryDTO> styleAccessoryDTOs = new ArrayList<>(); //  订单辅料耗用
    private OrderFabricUnitConsumptionDTO orderFabricUnitConsumptionDTO;    //  订单面料耗用

    /**
     * 不命中索引的信息
     */
    private String sessionId;   //  尺寸session id
    private String fromId;  //样品下单FormId
    private DtoSize dtoSize; //尺寸

    /**
     * 尺寸和设计点
     */
    private List<MeasureItemDTO> measureItemDTOS = new ArrayList<>();   //  尺寸表
    private List<DTODesignPoints> dtoDesignPoints = new ArrayList<>(); //设计点
//    public 坚山美国订单回执数据 OrderReceiptData ;//Order回执数据

    /**
     * 生成批次辅料信息
     *
     * @param batchQuantity 批次数量
     * @return 批次辅料信息
     */
    public Map<String, List<StyleAccessoryDTO>> buildBatchAccessoryDTO(Double batchQuantity) {
        return new HashMap<String, List<StyleAccessoryDTO>>() {{
            styleAccessoryDTOs
                    .forEach(
                            styleAccessoryDTO -> {
                                {

                                    if (containsKey(styleAccessoryDTO.getSubMaterialTypeId())) {
                                        //  合并
                                        get(styleAccessoryDTO.getSubMaterialTypeId())
                                                .add(
                                                        new StyleAccessoryDTO(
                                                                styleAccessoryDTO,
                                                                batchQuantity
                                                        )
                                                );
                                    } else {
                                        //  新增
                                        put(
                                                styleAccessoryDTO.getSubMaterialTypeId(),
                                                Lists.newArrayList(
                                                        new StyleAccessoryDTO(
                                                                styleAccessoryDTO,
                                                                batchQuantity
                                                        )
                                                )
                                        );
                                    }
                                }
                            }
                    );
        }};
    }

    /**
     * 更新设计点
     *
     * @param dtoDesignPoint 设计点
     * @return this
     */
    public OrderCommitDto buildDesignPoint(DTODesignPoints dtoDesignPoint) {
        boolean match = false;
        for (DTODesignPoints designPoint : this.dtoDesignPoints) {
            if (designPoint.getItemCd().equals(dtoDesignPoint.getItemCd()) && designPoint.getItemValue().equals(dtoDesignPoint.getItemValue())) {
                designPoint.build(dtoDesignPoint);
                match = true;
                break;
            }
        }
        if (!match) {
            this.dtoDesignPoints.add(dtoDesignPoint);
        }
        return this;
    }

    public OrderCommitDto buildOrderId(String orderId) {
        this.orderId = orderId;
        return this;
    }

    public OrderCommitDto buildStyleId(String styleId) {
        this.styleId = styleId;
        return this;
    }

    public OrderCommitDto buildOrderNo(String orderNo) {
        this.orderNo = orderNo;
        return this;
    }

    public OrderCommitDto buildOrderFabricUnitConsumption(
            StyleWithUnitConsumptionIndexDTO styleWithUnitConsumptionIndexDTO,
            Double fabricActualConsumption
    ) {
        this.orderFabricUnitConsumptionDTO = new OrderFabricUnitConsumptionDTO(
                styleWithUnitConsumptionIndexDTO,
                fabricActualConsumption
        );
        return this;
    }

    public OrderCommitDto buildStyleAccessory(boolean stockModify, List<StyleAccessoryDTO> styleAccessoryDTOs) {
        if (stockModify) {
            //  删除之前的外观相关项目
            List<String> facadeTypeIdList = new ArrayList<>();
            styleAccessoryDTOs
                    .forEach(
                            styleAccessoryDTO -> {
                                {
                                    if (!facadeTypeIdList.contains(styleAccessoryDTO.getSubMaterialTypeId())) {
                                        facadeTypeIdList.add(styleAccessoryDTO.getSubMaterialTypeId());
                                    }
                                }
                            }
                    );
            this.styleAccessoryDTOs.removeAll(
                    new ArrayList<StyleAccessoryDTO>() {{
                        styleAccessoryDTOs
                                .forEach(
                                        styleAccessoryDTO -> {
                                            {
                                                if (facadeTypeIdList.contains(styleAccessoryDTO.getSubMaterialTypeId())) {
                                                    add(styleAccessoryDTO);
                                                }
                                            }
                                        }
                                );
                    }}
            );


            //  新增门店项目
            this.styleAccessoryDTOs.addAll(styleAccessoryDTOs);
        } else {
            //  工厂修改，覆盖
            this.styleAccessoryDTOs = styleAccessoryDTOs;
        }
        return this;
    }

    /**
     * 辅料orderId注入
     *
     * @param orderId 订单id
     * @return OrderCommitDto
     */
    @Deprecated
    public OrderCommitDto buildAccessoryOrderId(String orderId) {
        this.styleAccessoryItemsDTO.buildOrderId(orderId);
        this.saveStyleAccessoryItemsDTO = JSON.toJSONString(this.styleAccessoryItemsDTO);
        return this;
    }

    public OrderCommitDto buildComposition(String composition) {
        logger.info("我把面料成分改成" + composition);
        this.composition = composition;
        return this;
    }

    public OrderCommitDto buildComposition(String materialNameCn, String composition) {
        logger.info("我把面料成分改成" + composition + "和" + materialNameCn);
        this.materialNameCn = materialNameCn;
        this.composition = composition;
        return this;
    }

    /**
     * build尺寸
     *
     * @param measureItemDTOS 尺寸
     */
    public OrderCommitDto build(List<MeasureItemDTO> measureItemDTOS) {
        logger.info(
                "更新之后的尺寸" +
                        JSON.toJSONString(measureItemDTOS)
        );

        if (this.measureItemDTOS.isEmpty()) {
            //  新增
            this.measureItemDTOS = measureItemDTOS;
        } else {
            //  修改
            this.measureItemDTOS.forEach(
                    measureItemDTO -> {
                        {
                            for (MeasureItemDTO itemDTO : measureItemDTOS) {
                                if (itemDTO.getItemCd().equals(measureItemDTO.getItemCd()) && itemDTO.getItemValue().equals(measureItemDTO.getItemValue())) {
                                    measureItemDTO.build(itemDTO);
                                    break;
                                }
                            }
                        }
                    }
            );
        }
        return this;
    }

    /**
     * 注入客户信息
     *
     * @param customerOrderCommitDTO 客户信息
     * @return this
     */
    public OrderCommitDto buildCustomerInfo(CustomerOrderCommitDTO customerOrderCommitDTO) {
        this.consignee = Strings.isNullOrEmpty(this.consignee) ? customerOrderCommitDTO.getCustomerName() : this.consignee;  //  收件人
        this.mobile = Strings.isNullOrEmpty(this.mobile) ? customerOrderCommitDTO.getMobile() : this.mobile;
        this.addressProvince = Strings.isNullOrEmpty(this.addressProvince) ? customerOrderCommitDTO.getAddressProvince() : this.addressProvince;
        this.addressCity = Strings.isNullOrEmpty(this.addressCity) ? customerOrderCommitDTO.getAddressCity() : this.addressCity;
        this.addressDistrict = Strings.isNullOrEmpty(this.addressDistrict) ? customerOrderCommitDTO.getAddressDistrict() : this.addressDistrict;
        this.addressDetail = Strings.isNullOrEmpty(this.addressDetail) ? customerOrderCommitDTO.getAddressDetail() : this.addressDetail;
        this.zipCode = Strings.isNullOrEmpty(this.zipCode) ? customerOrderCommitDTO.getZipCode() : this.zipCode;
        return this;
    }

    /**
     * 注入面料信息
     *
     * @param materialAllInfoDTO 面料信息
     * @return this
     */
    public OrderCommitDto buildMaterialInfo(MaterialAllInfoDTO materialAllInfoDTO) {
        logger.info("注入的面料信息" + JSON.toJSONString(materialAllInfoDTO));
        this.materialNameCn = materialAllInfoDTO.getMeterialDesc();//面料描述名称
        this.materialCode = materialAllInfoDTO.getMaterialNo();  //面料号
        this.materialColor = materialAllInfoDTO.getColor();//面料颜色
        this.composition = materialAllInfoDTO.getComposition();//面料成分
        logger.info("这个单" + this.orderId + "成分" + this.composition);
        this.density = materialAllInfoDTO.getDensity();  //  纱织密度
        this.weight = materialAllInfoDTO.getWeight();  //  克重
        this.width = materialAllInfoDTO.getWidth();    //  幅宽
        this.thick = materialAllInfoDTO.getThick();    //  厚度
        this.elastic = materialAllInfoDTO.getElastic();    //  弹力
        this.feature = materialAllInfoDTO.getFeature();    //  面料特性注意
        this.continuity = materialAllInfoDTO.getContinuity();    //  延续性
        this.uasge = materialAllInfoDTO.getUasge();    //  用途
        this.inspectionResults = materialAllInfoDTO.getInspectionResults();    //  验料结果
        this.color = materialAllInfoDTO.getColor();    //  颜色
        this.season = materialAllInfoDTO.getSeason();    //  季节
        this.style = materialAllInfoDTO.getStyle();    //  风格
        this.arrangementMethod = materialAllInfoDTO.getArrangementMethod();    //  整理方式
        return this;
    }

    public OrderCommitDto buildOrderInfo(OrderInfoDTO orderInfoDTO) {
        this.orderId = orderInfoDTO.getOrderId().toString();
        this.customerId = orderInfoDTO.getCustomerId().toString();
        this.customerName = orderInfoDTO.getCustomerName();
        this.shopId = orderInfoDTO.getShopId().toString();
        this.shopName = orderInfoDTO.getShopName();
        this.styleId = orderInfoDTO.getStyleId().toString();
        this.orderNo = orderInfoDTO.getOrderNo();
        this.orderNumber = orderInfoDTO.getOrderNumber();
        this.orderDate = orderInfoDTO.getOrderDate();
        return this;
    }

    public void buildSaleInventoryId(String saleInventoryId) {
        this.saleInventoryId = saleInventoryId;
    }

    public OrderCommitDto buildSaleInventoryId(String refBarcode, String saleInventoryId) {
        this.refBarcode = refBarcode;
        this.saleInventoryId = saleInventoryId;
        return this;
    }

    public OrderCommitDto buildStyleInfo(StyleInfoDto styleInfoDto) {
        this.styleFabricId = styleInfoDto.getSytleFabricId();
        this.styleSizeCd = styleInfoDto.getStyleSizeCd();
        this.styleNameCn = styleInfoDto.getStyleNameCn();
        this.styleYear = styleInfoDto.getSytleYear();
        this.styleSeason = styleInfoDto.getSytleSeason();
        this.refStyleId = styleInfoDto.getRefStyleId().toString();
        this.styleCategoryCd = styleInfoDto.getStyleCategoryCd();
        this.styleFitCd = styleInfoDto.getStyleFitCd();
        this.styleDressCategory = styleInfoDto.getStyleDressCategory();
        this.styleDesignType = styleInfoDto.getStyleDesignType();
        this.stylePublishCategoryCd = styleInfoDto.getStylePublishCategoryCd();
        this.styleMakeType = styleInfoDto.getStyleMakeType();
        return this;
    }

    public void buildMaterialInfo(MaterialInfoDTO materialInfoDTO) {
        this.materialNameCn = materialInfoDTO.getMaterial_name_cn();
        this.materialCode = materialInfoDTO.getMaterial_code();
        this.materialColor = materialInfoDTO.getMaterial_color();
    }

    public OrderCommitDto buildDesignPoints(List<DTODesignPoints> dtoDesignPoints) {
        this.dtoDesignPoints = dtoDesignPoints;
        return this;
    }

    /**
     * 构建量体值
     *
     * @param measureItemDTOS 量体值
     */
    public OrderCommitDto buildMeasureItem(List<MeasureItemDTO> measureItemDTOS) {
        this.measureItemDTOS = measureItemDTOS;
        return this;
    }

    /**
     * 构建单个量体值
     *
     * @param measureItemDTO measureItemDTO
     * @return this
     */
    public OrderCommitDto buildMeasureItemDTO(MeasureItemDTO measureItemDTO) {
        for (MeasureItemDTO itemDTO : this.measureItemDTOS) {
            if (itemDTO.getId().equals(measureItemDTO.getId())) {
                this.measureItemDTOS.remove(itemDTO);
                this.measureItemDTOS.add(measureItemDTO);
                break;
            }
        }
        return this;
    }

    /**
     * 注入客户量体值
     *
     * @param customerFitRDTOS 客户量体值
     * @return this
     */
    public OrderCommitDto buildCustomerFit(List<CustomerFitRDTO> customerFitRDTOS) {
        this.customerFitRDTOS = customerFitRDTOS;
        logger.info("这个订单：" + this.orderId + "这是这个逼：" + this.customerId + "的净量体值:" + this.customerFitRDTOS.toString());
        //将客户量体加入measureItemDTOS
        for (MeasureItemDTO measureItemDTO : this.measureItemDTOS) {
            for (CustomerFitRDTO customerFitRDTO : this.customerFitRDTOS) {
                try {
                    if (customerFitRDTO.getRemarks().contains(measureItemDTO.getItemValue()) /*&&
                            measureItemDTO.isHasFitValue()*/) {
                        logger.info("衣服人匹配上了！" + customerFitRDTO.toString());
                        measureItemDTO.setCustomerFitValue(
                                Double.parseDouble(
                                        customerFitRDTO.getFitValue()));
                        break;
                    }
                } catch (Exception e) {
                    logger.error("客户量体报错:" + customerFitRDTO.toString());
                }
            }
        }
        //将非维度值清洗
        this.customerFitRDTOS
                .removeIf(
                        customerFitRDTO ->
                                customerFitRDTO.getItemNameCn().isEmpty()
                                        && !customerFitRDTO.getItemValue().contains(MeasureConsts.HEIGHT_ITEM_VALUE)
                                        && !customerFitRDTO.getItemValue().contains(MeasureConsts.WEIGHT_ITEM_VALUE)
                );
        logger.info("将非维度值清洗完成:" + this.customerFitRDTOS.toString());
        return this;
    }

    /**
     * 构建订单DTO一览
     *
     * @return 订单DTO一览
     */
    public OrderCommitOverviewDto buildOrderCommitOverviewDto(String wipStatus) {
        return new OrderCommitOverviewDto(
                this.orderId,
                this.orderNo,
                this.orderNumber,
                this.orderDate,
                this.customerId,
                this.customerName,
                this.mobile,
                this.refStyleId,
                this.styleSizeCd,
                this.styleNameCn,
                this.shopId,
                this.shopName,
                wipStatus
        );
    }

    /**
     * 更新订单时间
     *
     * @return this
     */
    public OrderCommitDto buildOrderDate() {
        this.orderDate = DateTimeUtil.getCurrentDate();
        return this;
    }

    /**
     * 补充订单信息
     *
     * @param shopId   店id
     * @param shopName 店名
     * @return this
     */
    public OrderCommitDto buildOrderInfo(String shopId, String shopName) {
        try {
            if (this.orderDate.before(DateTimeUtil.getCurrentDate())) {
                //  系统时间是格林尼治时间，订单时间不应该小于系统时间
                this.orderDate = DateTimeUtil.getCurrentDate();
            }
        } catch (Exception e) {
            //  时间为空的报错
            this.orderDate = DateTimeUtil.getCurrentDate();
        }
        this.shopId = shopId;
        this.shopName = shopName;
        return this;
    }

    /**
     * 注入备注
     *
     * @param remarks 备注
     * @return this
     */
    public OrderCommitDto buildRemarks(String remarks) {
        this.remarks = DateTimeUtil.getCurrentDateYYYYMMDD() + remarks; //  加入备注时间
        return this;
    }

    /**
     * 更新地址
     *
     * @param customerName    客户名
     * @param mobile          电话
     * @param addressProvince 省
     * @param addressCity     市
     * @param addressDistrict 县
     * @param addressDetail   详细地址
     * @param zipCode         邮编
     * @return this
     */
    public OrderCommitDto buildAddress(
            String customerName,
            String consignee,
            String mobile,
            String addressProvince,
            String addressCity,
            String addressDistrict,
            String addressDetail,
            String zipCode
    ) {
        this.customerName = Strings.isNullOrEmpty(customerName) ? this.customerName : customerName;
        this.consignee = Strings.isNullOrEmpty(consignee) ? this.consignee : consignee;
        this.mobile = Strings.isNullOrEmpty(mobile) ? this.mobile : mobile;
        this.addressProvince = Strings.isNullOrEmpty(addressProvince) ? this.addressProvince : addressProvince;
        this.addressCity = Strings.isNullOrEmpty(addressCity) ? this.addressCity : addressCity;
        this.addressDistrict = Strings.isNullOrEmpty(addressDistrict) ? this.addressDistrict : addressDistrict;
        this.addressDetail = Strings.isNullOrEmpty(addressDetail) ? this.addressDetail : addressDetail;
        this.zipCode = Strings.isNullOrEmpty(zipCode) ? this.zipCode : zipCode;
        return this;
    }

    public SaleInventoryInfoDTO buildSaleInventoryInfo(String barcode, Double salePrice) {
        return new SaleInventoryInfoDTO(
                new SaleCreateFabricIndexDTO(
                        this.materialCode,
                        this.materialNameCn,
                        Integer.parseInt(this.styleFabricId)
                ),
                this.styleAccessoryDTOs,
                barcode,
                salePrice
        );
    }

    public OrderCommitDto buildSampleInfo(OrderCommitDto orderCommitDto) {
        this.styleAccessoryDTOs = orderCommitDto.getStyleAccessoryDTOs();
        this.refBarcode = orderCommitDto.getRefBarcode();
        this.saleInventoryId = orderCommitDto.getSaleInventoryId();
        return this;
    }


    /**
     * 坚山xml下单用尺寸注入
     *
     * @param itemCd      itemCd
     * @param itemValue   itemValue
     * @param itemNameCn  itemNameCn
     * @param garmentSize garmentSize
     * @param index       index
     * @return this
     */
    public OrderCommitDto buildMeasureItemDTOS(
            String itemCd,
            String itemValue,
            String itemNameCn,
            Double garmentSize,
            Integer index
    ) {
        MeasureItemDTO measureItemDTO = new MeasureItemDTO();
        measureItemDTO.setItemCd(itemCd);
        measureItemDTO.setItemValue(itemValue);
        measureItemDTO.setItemNameCn(itemNameCn);
        measureItemDTO.setGarmentSize(garmentSize);
        measureItemDTO.setIndex(index);
        measureItemDTO.setId(index.toString());
        this.measureItemDTOS.add(measureItemDTO);
        return this;
    }

    /**
     * 坚山xml下单用设计点注入
     *
     * @param itemTypeNameCn itemTypeNameCn
     * @param itemCd         itemCd
     * @param itemValue      itemValue
     * @param optionValue    optionValue
     * @param name           name
     * @return this
     */
    public OrderCommitDto buildDtoDesignPoints(
            String itemTypeNameCn,
            String itemCd,
            String itemValue,
            String optionValue,
            String name
    ) {
        DTODesignPoints dtoDesignPoints = new DTODesignPoints();
        dtoDesignPoints.setItemTypeNameCn(itemTypeNameCn);
        dtoDesignPoints.setItemCd(itemCd);
        dtoDesignPoints.setItemValue(itemValue);
        dtoDesignPoints.setOptionValue(optionValue);
        dtoDesignPoints.setName(name);
        this.dtoDesignPoints.add(dtoDesignPoints);
        return this;
    }

    public OrderCommitDto buildStyle(
            String size,
            String item
    ) {
        this.orderNumber = 1.0;
        this.styleSizeCd = "EGS_GROUP_SIZE-" + size;
        this.styleYear = "2020";
        this.styleSeason = "SEASON-SEASON_10";
        this.stylePublishCategoryCd = "PUBLISH_STYLE_CATEGORY-MShirt";
        this.styleCategoryCd = "STYLE_CATEGORY-SHIRT";
        this.styleSizeGroupCd = "GROUP_SIZE-EGS_GROUP_SIZE";
        this.styleDressCategory = "STYLE_DRESS_CATEGORY-FORMAL_SUIT";
        this.styleDesignType = "STYLE_DESIGN_TYPE-668";
        this.styleMakeType = "4SMA-4M";
        this.styleFitCd = "FIT_BODY_TYPE-NULL";
        switch (item) {
            case "HD":
                this.refStyleId = "7783978";
                this.styleNameCn = "HD 正装小圆摆长袖";
                break;
            case "HD01":
                this.refStyleId = "7783979";
                this.styleNameCn = "HD01 休闲小圆摆长袖";
                break;
            case "HS01":
                this.refStyleId = "7783980";
                this.styleNameCn = "HS01 无省休闲小圆摆长袖";
                break;
            case "HS02":
                this.refStyleId = "7783981";
                this.styleNameCn = "HS02 无省休闲大圆摆长袖";
                break;
            case "HH":
                this.refStyleId = "7783982";
                this.styleNameCn = "HH 正装小圆摆半袖";
                break;
            case "HH01":
                this.refStyleId = "7783983";
                this.styleNameCn = "HH01 休闲小圆摆半袖";
                break;
            case "KH01":
                this.refStyleId = "7783984";
                this.styleNameCn = "KH01 无省休闲小圆摆半袖";
                break;
            case "KH02":
                this.refStyleId = "7783985";
                this.styleNameCn = "KH02 无省休闲大圆摆半袖";
                break;
            case "HF":
                this.refStyleId = "7783986";
                this.styleNameCn = "HF 礼服款长袖";
                break;
        }
        return this;
    }
}
